/* 封装着对液晶屏 LCD1602 的各种操作的函数
 */
#ifndef __LCD1602_h__
#define __LCD1602_h__

// 若要使 LCD1602 支持使用 printf 函数输出，请定义此宏（__LCD1602_SUPPORT_printf__），且要确保其他模块未支持使用 printf 函数
// printf无法输出中文到串口，请勿包含中文
// 若传的实参不为变量，需对实参进行强制类型转换，否则无法正确输出，例如printf("time = %d\r\n", (int) 22);才能正确输出22
// #define __LCD1602_SUPPORT_printf__

void lcd_set_pos(unsigned char x, unsigned char y); /* 设置 LCD1602 光标位置，原点在屏幕左上角 */
void lcd_wchar(unsigned char dat);                  /* LCD1602 写字符，只接受单个 char 字符数字据 */
void lcd_wstring(char str[]);                       /* 将字符串输出到LCD1602 */
void lcd_clear();                                   /* LCD 光标复位，清屏 */
void lcd_init();                                    /* LCD1602 初始化 */

#ifdef __LCD1602_SUPPORT_printf__
// printf 不支持输出汉字及中文符号
int printf(const char *, ...); // 支持使用 printf 函数输出
#endif

#endif
